home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / Graphic Elements 3 / GESound / GESound.h < prev   
Text File  |  1995-05-25  |  2KB  |  111 lines

  1. /*
  2.     GESound.h
  3.     
  4.     Asynch sound player for use with Graphic Elements
  5.     
  6.     Version 1.0b1
  7.     
  8.     Requires Sound Manager 3.0 or later
  9.     
  10.     Copyright 1995 by Al Evans. All rights reserved.
  11.     
  12.     3/10/95
  13.     
  14. */
  15.  
  16. #ifndef GESOUND
  17. #define GESOUND
  18.  
  19. #include "List.h"
  20. #include <Sound.h>
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26. typedef struct {
  27.     SndChannelPtr        channel;
  28.     unsigned long        playTime;
  29.     short                priority;
  30.     short                sndNum;
  31. } GESndChan, *GESndChanPtr;
  32.  
  33. typedef struct {
  34.     LHeaderPtr        soundsLoaded;
  35.     long            soundEnabled;
  36.     short            nChannels;
  37.     short            nCurrent;
  38.     SndCallBackUPP    soundCallBack;        // So we can dispose it properly for PowerMac
  39.     GESndChan        soundChannel[];
  40. } GESoundsRec, *GESoundPtr;
  41.  
  42. /*
  43.     Call once to create and initialize a Graphic Elements sounds record.
  44.     
  45.     nSoundChannels is the maximum number of sounds that will be played at
  46.     the same time.
  47. */
  48.  
  49. GESoundPtr GEInitSounds(short nSoundChannels);
  50.  
  51. /*
  52.     Enable and disable sound play.
  53. */
  54.  
  55. void GEnableSound(GESoundPtr sounds, Boolean enableIt);
  56.  
  57. /*
  58.     Schedule a sound to play in msDelay milliseconds. sndResID is the resource
  59.     number of the sound to be played. The sound will actually be played only if
  60.     a sound channel is available with a current priority < priority.
  61. */
  62.  
  63. OSErr GEScheduleSound(GESoundPtr sounds, short sndResID, short priority, 
  64.                                 unsigned long msDelay);
  65.  
  66. /*                                
  67.     Make sound data memory-resident (keepInMemory == true) or 
  68.     purgeable (keepInMemory == false).
  69. */
  70.  
  71. void GEHoldSound(GESoundPtr sounds, short sndResID, Boolean keepInMemory);
  72.  
  73. /*
  74.     Must be called periodically (for example, once each time through main event loop)
  75.     to play scheduled sounds and manage sound memory allocation.
  76. */
  77.  
  78. void GESoundMaintenance(GESoundPtr sounds);
  79.  
  80. /*
  81.     Returns true if sound with resource # sndResID is currently playing.
  82. */
  83.  
  84. Boolean GESoundPlaying(GESoundPtr sounds, short sndResID);
  85.  
  86. /*
  87.      Stops sound with resource # sndResID immediately
  88. */
  89.  
  90. void GEStopOneSound(GESoundPtr sounds, short sndResID);
  91.  
  92. /*
  93.     Stops ALL sounds immediately.
  94. */
  95.  
  96. void GEStopAllSounds(GESoundPtr sounds);
  97.  
  98. /*
  99.     Call when completely finished with sounds. Frees all memory allocated in
  100.     GEInitSounds().
  101. */
  102.  
  103. void GEDisposeSounds(GESoundPtr sounds);
  104.  
  105.  
  106. #ifdef __cplusplus
  107. }
  108. #endif
  109.  
  110.  
  111. #endif